package com.wang.jmonkey.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Description 分页注解
 *
 * <h3>使用说明</h3>
 * <li>1、注解方法的参数类型可以是Map，在Map中有page和size字段，该Map参数在所有参数中的位置是position</li>
 * <li>2、注解方法的参数类型可以是继承自PageQuery类</li>
 * <li>3、注解方法的参数类型是其他类时，使用方法同Map</li>
 *
 * @Author HeJiawang
 * @Date 2021/5/21 13:05
 */
@Target(value= {ElementType.METHOD,ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface PageDefinition {

    /**
     * 存储页码字段的字段名称
     * @return page
     */
    String current() default "current";

    /**
     * 存储页大小字段的字段名称
     * @return size
     */
    String pageSize() default "pageSize";

    /**
     * 存放分页信息的参数位置
     * @return
     */
    int position() default 0;
}
